<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var a = new Set([1, 2, 3]);
        var b = new Set([4, 3, 2]);
        var intersect = new Set([...a].filter(x => !b.has(x))); // {2, 3}
        //1. [...a] 就是将Set转换成array。以后需要将set转换成array基本都使用这种方法。
        //2. [...a].filter() 
        //    Array/filter(function(x))把传入的函数 function（x）依次作用于每个元素，
        // x 为元素的值，然后根据返回值是true 还是false决定保留还是丢弃该元素。
        // 意思就是遍历当前数组，当遍历到某个元素时，返回值为false就将该元素从数组中剔除。
        //filter()方法创建一个新的数组，新数组中的元素是通过检查指定数组中符合条件的所有元素
        
        //3. =>则是一种简写方法
        //x=>x*x 相当于function(x) {return x*x},所有x =>b.has(x) 本质上是一个函数，
        //相当于 function(x) {return b.has(x)}

        //4. b.has(x)
        //Set.has(x)是set中的一个方法。即判断当前set中是否含有x，如果有返回true,
        //没有返回false
    </script>
</body>
</html>